package com.inesv.api.interfaces;

import java.math.BigDecimal;

/**
 *  create by liukeling
 *  Interface Name BitMethodDefine
 *  BTCapi方法的提取
 */
public interface BitMethodDefine {
    /**
     * 获取节点最新高度
     * @return  返回最新高度
     */
    String getHeight();

    /**
     * 获取地址或者账号的余额
     * @param address  地址或账号
     * @return  金额
     */
    String getBalance(String address);

    /**
     * 获取节点的余额
     * @return  金额
     */
    String getBalance();
    /**
     * 转账方法
     * @param to     转入地址
     * @param value  金额
     * @return  交易的hash值
     */
    String sendTransaction(String to,String value);

    /**
     * 创建钱包地址
     * @param flag  创建钱包地址所需要的参数
     * @return  钱包地址
     */
    String newAddress(String flag);

    /**
     * 根据hash获取流水记录
     * @param hash  流水hash
     * @return  流水信息
     */
    String getTransactionByHash(String hash);

    /**
     * 打开钱包
     * @return
     */
    String openWallet();

    /**
     * 关闭钱包
     * @return
     */
    String closeWallet();

    /**
     * 根据hash获取区块信息
     * @param hash  区块hash
     * @return  区块信息
     */
    String getBlock(String hash);

    /**
     * 根据区块高度获取区块高度的区块hash
     * @param height  区块高度  16进制
     * @return   区块hash
     */
    String getBlockHash(String height);

    /**
     * 根据账号获取交易记录，分页
     * @param name    账号
     * @param count   总数
     * @param from    从那条开始
     * @return  流水集合
     */
    String listTransaction(String name,int count,int from);

    BigDecimal getGas();

    BigDecimal getGasPrice();

    BigDecimal getWEI();
}
